package controller;

import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

import javax.swing.JOptionPane;

import dao.ProdutoDao;
import entity.Produto;

public class ProdutoController {

	private String dataAtual() {
		Date data = new Date(System.currentTimeMillis());
		SimpleDateFormat formatarDate = new SimpleDateFormat("yyyy-MM-dd");
		String dataAtual = formatarDate.format(data);
		System.out.println(dataAtual);
		return dataAtual;
	}

	private String formatarDataInv(String data) {
		if (data.contains("-")) {
			int ano = Integer.parseInt(data.substring(0, 4));
			int mes = Integer.parseInt(data.substring(3, 5));
			int dia = Integer.parseInt(data.substring(6, 8));
			data = ano + "-" + mes + "-" + dia;
			System.out.println("com ----");
		} else {
			int dia = Integer.parseInt(data.substring(0, 2));
			int mes = Integer.parseInt(data.substring(3, 5));
			int ano = Integer.parseInt(data.substring(6, 10));
			data = ano + "-" + mes + "-" + dia;
			System.out.println("com /////");
		}
		return data;
	}

	public void salvar(String dataCadastro, String dataUltimaAlteracao,
			int cod_barra, String descricao, String marca, String localEstoque,
			double aliquota, int codNcm, String ativo, int codLoja,
			String liberadoNe, String complemento, double precoCusto,
			double precoVenda, double margem, String unidade,
			double descontoMax, double icms, double ipi, int qtdEstoque,
			int estoqueMin, int estoqueMax, String fornecedor, String iat,
			String ippt, String situacaoTributaria) {
		Produto produto = new Produto();
		produto.setDataCadastro(dataAtual());
		produto.setDataUltimaAlteracao(dataAtual());
		produto.setCod_barra(cod_barra);
		produto.setDescricao(descricao);
		produto.setMarca(marca);
		produto.setLocalEstoque(localEstoque);
		produto.setAliquota(aliquota);
		produto.setCodNcm(codNcm);
		produto.setAtivo(ativo);
		produto.setCodLoja(codLoja);
		produto.setLiberadoNe(liberadoNe);
		produto.setComplemento(complemento);
		produto.setPrecoCusto(precoCusto);
		produto.setPrecoVenda(precoVenda);
		produto.setMargem(margem);
		produto.setUnidade(unidade);
		produto.setDescontoMax(descontoMax);
		produto.setIcms(icms);
		produto.setIpi(ipi);
		produto.setQtdEstoque(qtdEstoque);
		produto.setEstoqueMin(estoqueMin);
		produto.setEstoqueMax(estoqueMax);
		produto.setFornecedor(fornecedor);
		produto.setIat(iat);
		produto.setIppt(ippt);
		produto.setSituacaoTributaria(situacaoTributaria);
		new ProdutoDao().salvar(produto);
	}

	public void alterar(int id, String dataCadastro,
			String dataUltimaAlteracao, int cod_barra, String descricao,
			String marca, String localEstoque, double aliquota, int codNcm,
			String ativo, int codLoja, String liberadoNe, String complemento,
			double precoCusto, double precoVenda, double margem,
			String unidade, double descontoMax, double icms, double ipi,
			int qtdEstoque, int estoqueMin, int estoqueMax, String fornecedor,
			String iat, String ippt, String situacaoTributaria) {
		Produto produto = new Produto();
		produto.setId(id);
		produto.setDataCadastro(dataAtual());
		produto.setDataUltimaAlteracao(dataAtual());
		produto.setCod_barra(cod_barra);
		produto.setDescricao(descricao);
		produto.setMarca(marca);
		produto.setLocalEstoque(localEstoque);
		produto.setAliquota(aliquota);
		produto.setCodNcm(codNcm);
		produto.setAtivo(ativo);
		produto.setCodLoja(codLoja);
		produto.setLiberadoNe(liberadoNe);
		produto.setComplemento(complemento);
		produto.setPrecoCusto(precoCusto);
		produto.setPrecoVenda(precoVenda);
		produto.setMargem(margem);
		produto.setUnidade(unidade);
		produto.setDescontoMax(descontoMax);
		produto.setIcms(icms);
		produto.setIpi(ipi);
		produto.setQtdEstoque(qtdEstoque);
		produto.setEstoqueMin(estoqueMin);
		produto.setEstoqueMax(estoqueMax);
		produto.setFornecedor(fornecedor);
		produto.setIat(iat);
		produto.setIppt(ippt);
		produto.setSituacaoTributaria(situacaoTributaria);
		new ProdutoDao().alterar(produto);
	}

	public List<Produto> listaprodutos() {
		ProdutoDao dao = new ProdutoDao();
		try {
			return dao.findProdutos();
		} catch (SQLException e) {
			JOptionPane.showMessageDialog(null,
					"Problemas ao localizar Produto" + e.getLocalizedMessage());
		}
		return null;
	}

	public void excluir(Object id) throws SQLException {
		new ProdutoDao().excluir(id);
	}

	// public Cliente buscaClientePorNome(String nome) throws SQLException {
	// ClienteDao dao = new ClienteDao();
	// return dao.findByName(nome);
	// }

	// public Cliente buscaClientePorId(int id) throws SQLException {
	// ClienteDao dao = new ClienteDao();
	// return dao.findById(id);
	// }
	//
	// public Cliente buscaClientePorCpf(String cpf) {
	// Cliente cliente = null;
	// ClienteDao dao = new ClienteDao();
	// try {
	// if (dao.findByCpf(cpf) == null) {
	// return cliente;
	// } else {
	// return dao.findByCpf(cpf);
	// }
	// } catch (Exception e) {
	// // JOptionPane.showMessageDialog(null, "eeeeeee?????" +
	// // cliente.getCpf());
	// e.printStackTrace();
	// }
	// return null;
	// }

}
